package com.ls.fw.token.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.ls.fw.token.support.TokenRepository;

/**
 * This class is used as annotation for http requests that needed to have a
 * token.
 * 
 * parameter : remove if it is true then remove from cache.
 * 
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface RequireToken {

	/**
	 * 该token名称，用以区分多个RequireToken
	 * @author lisheng
	 * @date 2016年2月28日 下午9:12:23
	 * @version V1.0
	 * @return
	 */
    String name() default TokenRepository.DEFAULT_PARAMETER_NAME;
    
    String[] ignoreMethod() default {} ;
    
    String[] acceptMethod() default {} ;
    
    /**
     * 只有一次寿命
     * @author lisheng
     * @date 2016年1月18日 下午8:54:32
     * @version V1.0
     * @return
     */
    boolean onceLife() default true;
    
    /**
     * 是否生成新token
     * @author lisheng
     * @date 2016年1月18日 下午8:58:04
     * @version V1.0
     * @return
     */
    boolean generateNew() default true;
}
